Linear filtering is an important technique in image processing, which generally selects an odd-order filter matrix with its central element corresponding to a to-be-processed pixel, and slides the filter matrix throughout an input image so that each central pixel enclosed by the filter matrix can be reconstructed by linearly combining all pixels enclosed in the filter matrix with reference to values of corresponding elements in the filter matrix. In this case, the selected filter matrix is generally a symmetric odd-order matrix derived from adaptive signal processing, and the to-be-processed pixel is any central pixel enclosed by the odd-order filter matrix.
A detailed description of a 5-order filter matrix is presented below.
Table 1 lists a 5-order filter matrix W used in conventional image filters and the corresponding filtering method, where W={W(i,j).vertline.(i,j).epsilon.S} and S={(i,j).vertline.0.ltoreq.i.ltoreq.4,0.ltoreq.j.ltoreq.4} the size m.times.n of the filter matrix.
TABLE 1 ______________________________________ W.sub.00 W.sub.01 W.sub.02 W.sub.03 W.sub.04 W.sub.10 W.sub.11 W.sub.12 W.sub.13 W.sub.14 W = W.sub.20 W.sub.21 W.sub.22 W.sub.23 W.sub.24 W.sub.30 W.sub.31 W.sub.32 W.sub.33 W.sub.34 W.sub.40 W.sub.41 W.sub.42 W.sub.43 W.sub.44 ______________________________________
Then, the filter matrix W is slid across an m.times.n input image I, where I={(i,j).vertline.0.ltoreq.i.ltoreq.m-1,0.ltoreq.j.ltoreq.n-1}. In this case, the central pixels of each 5.times.5 graphics window enclosed by the filter matrix W are respectively reconstructed by linearly combining all pixels enclosed by the filter matrix W according to values of corresponding filter matrix elements.
Thus, each reconstructed pixel of the reconstructed image R can be computed by: EQU R(k,p)=.SIGMA..SIGMA.[I(k-i,p-j)*W(i,j)]
where (i,j).epsilon.S, (k,p).epsilon.Q, Q={(k,p).vertline.m/2.ltoreq.k.ltoreq.w-m/2,n/2.ltoreq.p.ltoreq.h-n/2}, w is the width of the input image and h is the length of the input image.
For instance, suppose the input image I is a 6-order matrix (as shown in Table 2) with Q={(k,p).vertline.2.ltoreq.k.ltoreq.w-2,2.ltoreq.p.ltoreq.h-2}, the reconstructed images are then obtained using the above-mentioned equations: EQU R(2,2)=.SIGMA..SIGMA.[I(i,j)*W(i,j)] 0.ltoreq.i.ltoreq.4,0.ltoreq.j.ltoreq.4, EQU R(3,2)=.SIGMA..SIGMA.[I(i,j)*W(i,j)] 1.ltoreq.i.ltoreq.5,0.ltoreq.j.ltoreq.4, EQU R(3,3)=.SIGMA..SIGMA.[I(i,j)*W(i,j)] 1.ltoreq.i.ltoreq.5,1.ltoreq.j.ltoreq.5, and EQU R(2,3)=.SIGMA..SIGMA.[I(i,j)*W(i,j)] 0.ltoreq.i.ltoreq.4,1.ltoreq.j.ltoreq.5.
And the corresponding reconstructed image is listed as Table 3.
TABLE 2 ______________________________________ I.sub.00 I.sub.01 I.sub.02 I.sub.03 I.sub.04 I.sub.05 I.sub.10 I.sub.11 I.sub.12 I.sub.13 I.sub.14 I.sub.15 I = I.sub.20 I.sub.21 I.sub.22 I.sub.23 I.sub.24 I.sub.25 I.sub.30 I.sub.31 I.sub.32 I.sub.33 I.sub.34 I.sub.35 I.sub.40 I.sub.41 I.sub.42 I.sub.43 I.sub.44 I.sub.45 I.sub.50 I.sub.51 I.sub.52 I.sub.53 I.sub.54 I.sub.55 ______________________________________
TABLE 3 ______________________________________ R.sub.00 R.sub.01 R.sub.02 R.sub.03 R.sub.04 R.sub.05 R.sub.10 R.sub.11 R.sub.12 R.sub.13 R.sub.14 R.sub.15 R = R.sub.20 R.sub.21 R.sub.22 R.sub.23 R.sub.24 R.sub.25 R.sub.30 R.sub.31 R.sub.32 R.sub.33 R.sub.34 R.sub.35 R.sub.40 R.sub.41 R.sub.42 R.sub.43 R.sub.44 R.sub.45 R.sub.50 R.sub.51 R.sub.52 R.sub.53 R.sub.54 R.sub.55 ______________________________________
However, there are several shortcomings to this linear image filter and the corresponding filtering method. Since the filter matrix W in this case is generally a symmetric odd-order matrix, only one central pixel can be processed during a single cycle. In addition, each pixel of the input image and each element of the filter matrix is represented by an 8-bit value, so current 32-bit processors, the most popular processor recently, can not be fully utilized.